/**
 * SentenceCreater
 * @version 1.0
 * Copyright: Wolna licencja
 */

package pl.put.io.code.core;

import java.util.ArrayList;
import java.util.List;

/**
 * Klasa tworząca zdania z danych wczytanych z plików.
 * 
 * @author inf94337
 * 
 */
public class SenteceCreater {
    /** Lista przeznaczona do przechowywania imion. */
    private List<String> names = new ArrayList<String>();

    /** Lista przeznaczona do przechowywania czynności. */
    private List<String> activities = new ArrayList<String>();

    /** Lista przeznaczona do przechowywania miejsc. */
    private List<String> places = new ArrayList<String>();

    /**
     * Konstruktor wrzucający imiona, czynności i miejsca na odpowiednie listy.
     * 
     * @param names lista imion
     *            
     * @param activities lista czynności
     *            
     * @param places lista miejsc
     *            
     */
    public SenteceCreater(List<String> names, List<String> activities,
	    List<String> places) {
	this.names.addAll(names);
	this.activities.addAll(activities);
	this.places.addAll(places);
    }

    /**
     * Metoda tworząca zdania.
     * 
     * @param numberOfSentences liczba zdań
     *            
     * @return lista zdań
     */
    public List<String> createSentences(int numberOfSentences) {
	final List<String> result = new ArrayList<String>();
	for (int i = 0; i < numberOfSentences; i++) {
	    StringBuffer sentence = new StringBuffer();
	    int idx = (int) ((Math.random() * names.size()));
	    sentence.append(names.get(idx) + " ");
	    idx = (int) ((Math.random() * activities.size()));
	    sentence.append(activities.get(idx) + " ");
	    idx = (int) ((Math.random() * places.size()));
	    sentence.append(places.get(idx) + ".");
	    result.add(sentence.toString());
	}
	return result;
    }

}
